﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using BLToolkit.Data;
using BLToolkit.DataAccess;
using BLToolkit.Mapping;
using Devsoft.DB.Models;
namespace Data_Access_Layer
{
	[TableName("Employee")]
	public class Employee : Devsoft.DB.Models.Flat.Model<Employee>
	{
		/// <summary>
		/// Lấy hoặc gán giá trị mã nhân viên
		/// </summary>
		[PrimaryKey, Identity]
		public int Id { get; set; }
		private string name;
		/// <summary>
		/// Name tên nhân viên
		/// </summary>
		public string Name
		{
			get { return name; }
			set { name = value; }
		}

		public bool Sex;

		/// <summary>
		/// Sex gi?i tính nhân viên
		/// </summary>

		[MapIgnore]
		public string SexST
		{
			get { return (Sex) ? "Nam" : "Nữ"; }
			set
			{
				if (value == "Nam")
					Sex = true;
				else
				{
					Sex = false;
				}
			}
		}

		private DateTime? birtday;
		/// <summary>
		/// Birtday ngày sinh  nhân viên
		/// </summary>
		public DateTime? Birthday
		{
			get { return birtday; }
			set
			{
				
				birtday = value;
			}
		}

		private string address;
		/// <summary>
		/// Address d?a ch?  nhân viên
		/// </summary>
		public string Address
		{
			get { return address; }
			set { address = value; }
		}

        /// <summary>
        /// RoleId mã b? phân mà nhân viên ph? trách
        /// </summary>
		
	    public int RoleId { get; set; }
		

		private bool deleted;
		/// <summary>
		/// Deleted Nhân viên dã b? xóa chua.
		/// </summary>
		public bool Deleted
		{
			get { return deleted; }
			set { deleted = value; }
		}
		/// <summary>
		/// M?t nhân viên ch? có m?t tài kho?n duy nh?t
		/// </summary>
		[Association(ThisKey = "Id", OtherKey = "EmpId", CanBeNull = false)]
		public Account Account { get; set; }

		/// <summary>
		/// m?t nhân viên ch? làm m?t ch?c v? duy nh?t.
		/// </summary>
		[Association(ThisKey = "RoleId", OtherKey = "Id", CanBeNull = false)]
		public Role Role { get; set; }
		public Employee(int id, string name, bool sex, DateTime bt, Role cv, bool dl)
		{
			Id = id;
			Name = name;
			Sex = sex;
			Birthday = bt;
			Role = cv;
			Deleted = dl;
		}
		public Employee()
		{
		}
	}
}
